package ar.edu.utn.frba.tacs.warnes.services;

import static junit.framework.Assert.*;

import org.apache.cxf.jaxrs.client.WebClient;
import org.junit.Test;

import ar.edu.utn.frba.tacs.warnes.pojos.PedidoPojo;
import ar.edu.utn.frba.tacs.warnes.pojos.PedidoPojoList;
import ar.edu.utn.frba.tacs.warnes.pojos.PiezaPojoList;

/**
 * ACORDARSE DE LEVANTAR LA APP EN JETTY!!
 * 
 * @author Diego
 * 
 */
public class PedidosRestTestCase {

	@Test
	public void testPedidoPorId() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		PedidoPojo primero = wc.path("/id/1").get(PedidoPojo.class);
		wc.back(true);// Le saca el path que le acabo de agregar
		PedidoPojo segundo = wc.path("/ultimo").get(PedidoPojo.class);

		assertEquals(Integer.valueOf(2), primero.getCantidadPiezas());
		assertEquals(Integer.valueOf(0), segundo.getCantidadPiezas());
	}

	@Test
	public void testPedidosList() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		PedidoPojoList pedidos = wc.path("/pedidos").get(PedidoPojoList.class);

		assertEquals(2, pedidos.getPedidos().size());
	}

	@Test
	public void testPiezasDelPedidoPorId() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		PiezaPojoList piezas = wc.path("/id/1/piezas").get(PiezaPojoList.class);

		assertEquals(2, piezas.getPiezas().size());
	}

	@Test
	public void testEfectivizarPedidos() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		wc.path("/id/1/efectivizar").put(null);
		wc.back(true);
		PedidoPojo pedido = wc.path("/id/1").get(PedidoPojo.class);
		assertTrue(pedido.isEfectivizado());
	}

	@Test
	public void testPedidoDelete() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		wc.path("/borrar/ultimo").delete();

		wc.back(true);// Le saca el path que le acabo de agregar
		PedidoPojoList pedidos = wc.path("/pedidos").get(PedidoPojoList.class);
		assertEquals(1, pedidos.getPedidos().size());
	}

	@Test
	public void testPedidoPutNuevo() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/pedidos");
		wc.path("/agregar/nuevo").post(null);

		wc.back(true);// Le saca el path que le acabo de agregar
		PedidoPojoList pedidos = wc.path("/pedidos").get(PedidoPojoList.class);
		assertEquals(2, pedidos.getPedidos().size());
	}
}
